iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 14
0
自我挑戰組

前端新手的學習筆記系列 第 14

Day14:每天一個小練習 - Bootstrap自訂元件

  • 分享至 

  • xImage
  •  

還在和作業奮鬥。


元件的好處是可以直接搬到其他專案上,不用全部重寫。


先開個components資料夾,新增一個box.scss檔案。
然後在all.scss內引入該檔案,就可以開始自訂元件啦。

@import"components/box";

先設定一個基本結構

.box{
    width: 100px;
    height: 100px;
}

然後可以開始增加設定,例如帶入顏色。
官網上的範例是這樣:

.custom-element {
  color: gray("100");
  background-color: theme-color("dark");
}

但實際上可以直接抓變數,這樣寫就讀得到:

.box{
    width: 100px;
    height: 100px;
    background-color: $success;
}

還可以套用函式帶入參數,按照級別增減顏色,正數加深,負數變淺:

.box {
    width: 200px;
    height: 200px;
    background-color: $success;
    &:hover {
        background-color: theme-color-level(success, 5);
    }
}

如果覺得一個一個設定顏色很耗時間,官網也有提供大量產生元件色彩的方法:

@each $color, $value in $theme-colors {
  .alert-#{$color} {
    @include alert-variant(theme-color-level($color, -10), theme-color-level($color, -9), theme-color-level($color, 6));
  }
}

進行簡單的修改

@each $color, $value in $theme-colors {
    .box-#{$color} {
        background-color:$value;
    }
}

在HTML使用時就會出現以下畫面
https://ithelp.ithome.com.tw/upload/images/20200928/20121534nNiLXFVGFx.png

為了配合不同深淺的背景色,還可以對文字深淺進行計算:

@each $color, $value in $theme-colors {
    .box-#{$color} {
        background-color:$value;
        color: color-yiq($value); //加上這行
    }
}

使用時會出現以下畫面
https://ithelp.ithome.com.tw/upload/images/20200928/20121534PRd2kUlkdW.png

其他邊框文字推移等設定就看自己的需求,還可以配合JS做開合選單之類的效果。


上一篇
Day13:每天一個小練習 - Bootstrap修改變數
下一篇
Day15:每天一個小練習 - CSS毛玻璃效果
系列文
前端新手的學習筆記32
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言